1 using UnityEngine;
2 using
System.Collections;
3
4 public
class LevelLocker : MonoBehaviour {
5
6     
[SerializeField]
7     
private PuzzleGameSaver puzzleGameSaver;
8
9     
[SerializeField]
10     
private StarsLocker starsLocker;
11     
12     
[SerializeField]
13     
private GameObject[] levelStarsHolders;
14     
15     
[SerializeField]
16     
private GameObject[] levelsPadlocks;
17     
18     
private bool[] candyPuzzleLevels;
19     
private bool[] transportPuzzleLevels;
20     
private bool[] shapePuzzleLevels;
21
22     
void Awake() {
23         DeactivatePadlocksAndStarHolders ();
24     }
25     
26     
void Start () {
27         GetLevels ();
28     }
29
30     
public void CheckWhichLevelsAreUnlocked(string selectedPuzzle) {
31
32         DeactivatePadlocksAndStarHolders ();
33         GetLevels ();
34
35         
switch (selectedPuzzle) {
36
37         
case "Candy Puzzle":
38
39             
for(int i = 0; i < candyPuzzleLevels.Length; i++) {
40                 
if(candyPuzzleLevels[i]) {
41                     levelStarsHolders[i].SetActive(
true);
42                  starsLocker.ActivateStars(i, selectedPuzzle);
43                 }
else {
44                     levelsPadlocks[i].SetActive(
true);
45                 }
46             }
47
48             
break;
49
50         
case "Transport Puzzle":
51             
52             
for(int i = 0; i < transportPuzzleLevels.Length; i++) {
53                 
if(transportPuzzleLevels[i]) {
54                     levelStarsHolders[i].SetActive(
true);
55                     starsLocker.ActivateStars(i, selectedPuzzle);
56                 }
57                 
else {
58                     levelsPadlocks[i].SetActive(
true);
59                 }
60             }
61             
62             
break;
63             
64         
case "Shape Puzzle":
65             
66             
for(int i = 0; i < shapePuzzleLevels.Length; i++) {
67                 
if(shapePuzzleLevels[i]) {
68                     levelStarsHolders[i].SetActive(
true);
69                 starsLocker.ActivateStars(i, selectedPuzzle);
70                 }
else {
71                     levelsPadlocks[i].SetActive(
true);
72                 }
73             }
74             
75             
break;
76
77         
78         }
79
80     }
81
82     
void DeactivatePadlocksAndStarHolders() {
83         
for(int i = 0; i < levelStarsHolders.Length; i++) {
84             levelStarsHolders[i].SetActive(
false);
85             levelsPadlocks[i].SetActive(
false);
86         }
87     }
88
89     
void GetLevels() {
90         candyPuzzleLevels = puzzleGameSaver.candyPuzzleLevels;
91         transportPuzzleLevels = puzzleGameSaver.transportPuzzleLevels;
92         shapePuzzleLevels = puzzleGameSaver.shapePuzzleLevels;
93     }
94
95     
public bool[] GetPuzzleLevels(string selectedPuzzle) {
96
97         
switch (selectedPuzzle) {
98
99         
case "Candy Puzzle":
100             
return this.candyPuzzleLevels;
101             
break;
102
103         
case "Transport Puzzle":
104             
return this.transportPuzzleLevels;
105             
break;
106
107         
case "Shape Puzzle":
108             
return this.shapePuzzleLevels;
109             
break;
110
111         
default:
112             
return null;
113             
break;
114
115         }
116
117     }
118
119 }
// LevelLocker



Full source code giải đố hình đơn giản 16.652 lượt xem

Gõ tìm kiếm nhanh...